package m.common.model.util;

import m.system.exception.MException;

public interface IModelQuery {
	/**
	 * 添加查询字段
	 */
	IModelQuery addField(String... fieldName);
	/**
	 * 添加字段替换表达式
	 */
	IModelQuery addFieldExpression(String field,String expression);
	/**
	 * 添加查询条件
	 */
	IModelQuery addCondition(QueryCondition... cond);
	/**
	 * 分页
	 */
	IModelQuery setPage(QueryPage page);
	/**
	 * 添加排序
	 */
	IModelQuery addOrder(QueryOrder... order);
	/**
	 * 获取查询字段对应的别名
	 */
	String getAlias4Field(String field);
	/**
	 * 获取查询sql及参数
	 */
	QueryParameter getQueryParameter() throws MException;
	/**
	 * 并联sql语句
	 */
	IModelQuery unionAll(IModelQuery... querys);
}
